package com.common.collection;

import java.util.ArrayList;
import java.util.List;

/**
 * 练习：在自己的包下，建一个StudentDemo类，类中通过本类的students()方法获取学生信息。
 * 之后按照如下需求，创建出：filterByAge，distinctName，nameTimes，sortByAge，addressAndInfo方法。
 * 注意：下面所说的 姓名-年龄-地址 的格式，只需要直接输出学生对象即可。
 *      如：Student student = new Student();
 *          System.out.println(student);  //结果自然就是 姓名-年龄-地址 的格式了
 *
 * 需求如下：
 * 1，filterByAge：根据年龄过滤出小于15岁（不包含15）的学生，结果类似于：
 *      张三-12-吉林长春 李四-13-吉林松原 王五-10-吉林吉林
 * 2，distinctName：对学生姓名进行去重并输出，结果类似于：
 *      张三 李四 王五
 * 3，nameTimes：找统计学生姓名出现的次数并输出。结果类似如下：
 *      张三：2 李四：2 王五：1
 * 4，sortByAge：将学生按照年龄排序并输出，结果类似于：
 *      王五...张三...李四...张三...李四
 * 5，addressAndInfo：获取 地址-学生信息 的关系并输出，结果类似于：
 *      吉林长春（张三-12-吉林长春）  吉林松原（李四-13-吉林松原，张三-15-吉林松原） 吉林吉林（王五-10-吉林吉林，李四-19-吉林吉林）
 * @author mengxj
 */
public class Classes {

    public List<Student> students(){
        List<Student> list = new ArrayList<>();
        list.add(this.createStudent("张三", 12, "吉林长春"));
        list.add(this.createStudent("李四", 13, "吉林松原"));
        list.add(this.createStudent("王五", 10, "吉林吉林"));
        list.add(this.createStudent("张三", 15, "吉林松原"));
        list.add(this.createStudent("李四", 19, "吉林吉林"));
        return list;
    }

    private Student createStudent(String name, Integer age, String address){
        Student student = new Student();
        student.setName(name);
        student.setAge(age);
        student.setAddress(address);
        return student;
    }
}
